#include "HiranipraCommon.h"

#ifndef _MACOSX_WINDOW_H_
#define _MACOSX_WINDOW_H_

namespace Hiranipra {
	namespace Platform {

		class Window : implements IWindow
		{
		public:
			Window( const WindowParameters& params );
			virtual ~Window();

			virtual void SetTitle( const wstring& newTitle );

			virtual uint32 GetCurrentDisplay() const;
			virtual void MoveToDisplay( const uint32 displayId );

			virtual Point2D GetLocation() const;
			virtual void SetLocation( const Point2D& location );
			virtual Size2D GetSize() const;
			virtual void SetSize( const Size2D& size );

			virtual WindowState GetState() const;
			virtual void SetState( const WindowState state );
			virtual bool IsMinimized() const;
			virtual bool IsClosed() const { return _isClosed; }
			virtual void Close();

			virtual WindowHandle GetHandle() const { return ( WindowHandle )_handle; }

		private:
			Size2D		_size;
            void*       _handle;
			bool		_isClosed;
		};

	}
}

#endif // _MACOSX_WINDOW_H_
